package SellTicketShop;

public class SellTickets implements Runnable {
    private int tickets = 100; // 总票数

    @Override
    public void run() {
        while (true) {
            //synchronized (this) 锁定的是当前实例对象
            //只有持有该对象锁的线程才能进入同步块。
            synchronized (this) {
                if (tickets > 0) {
                    //Thread.currentThread()拿到当前线程
                    // .getName()拿到线程名字
                    tickets--; // 票数减1
                    System.out.println(Thread.currentThread().getName() + " 卖出了1张票，还剩下 " + tickets + " 张票");
                } else {
                    break; // 票卖完了，跳出循环
                }
            }

            if (tickets>0) {
                try {
                    Thread.sleep(1000); // 模拟卖票时间
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

        }
    }
}